package model

// IfcgateExchangeCurrency  换汇明细
type IfcgateExchangeCurrency struct {
	ID           int64  `json:"id"`            //  主键
	MerchantNo   string `json:"merchant_no"`   //  商户号
	Account      string `json:"account"`       // 代理商账户
	SellCurrency string `json:"sell_currency"` //  卖出币种
	BuyCurrency  string `json:"buy_currency"`  //  买入币种
	Rate         string `json:"rate"`          //  汇率
	SellAmount   string `json:"sell_amount"`   //  卖出金额
	BuyAmount    string `json:"buy_amount"`    //  买入金额
	QuoteId      int64  `json:"quote_id"`      //  报价id
	BizFlow      string `json:"biz_flow"`      //  业务流水号
	Status       string `json:"status"`        //  init,success,fail
}

// IfcgateInternationTransferRecord  国际汇款记录
type IfcgateInternationTransferRecord struct {
	ID             int64   `json:"id"`              //  主键
	PayeeId        int64   `json:"payee_id"`        //收款人ID
	MerchantNo     string  `json:"merchant_no"`     //  商户号
	Account        string  `json:"account"`         // 代理商账户
	QuoteId        int64   `json:"quote_id"`        //  报价id
	CountryCode    string  `json:"country_code"`    //  收款国家
	ArriveCurrency string  `json:"arrive_currency"` //  收款币种
	DebitCurrency  string  `json:"debit_currency"`  //  扣款币种
	PayType        string  `json:"pay_type"`        //  可选值：local 或者 swift
	AccountType    string  `json:"account_type"`    //  暂只支持输入 1（银行账户）
	ArriveAmount   string  `json:"arrive_amount"`   //  付款金额
	DebitAmount    string  `json:"debit_amount"`    //  扣款金额
	Rate           string  `json:"rate"`            //  汇率
	Status         string  `json:"status"`          //  订单状态
	Code           string  `json:"code"`            //  交易结果码
	Message        string  `json:"message"`         //  交易结果描述
	BizFlow        string  `json:"biz_flow"`        //  对应国际汇款交易的唯一流水号
	MerOrderNo     string  `json:"mer_order_no"`    //  商户订单号
	FxBizFlow      string  `json:"fx_biz_flow"`     //  关联fx流水号
	FeeAmt         float64 `json:"fee_amt"`         //  手续费金额
	FeeCurrency    string  `json:"fee_currency"`    //  所收取的手续费币种
}

// IfcgateDomesticTransferRecord  国内汇款记录
type IfcgateDomesticTransferRecord struct {
	ID            int64   `json:"id"` //  主键
	PayeeId       int64   `json:"payee_id"`
	BizFlowNo     string  `json:"biz_flow_no"`     //  对应国内汇款交易的唯一流水号
	MerchantNo    string  `json:"merchant_no"`     //  商户号
	Account       string  `json:"account"`         // 代理商账户
	QuoteId       int64   `json:"quote_id"`        //  报价id
	DebitCurrency string  `json:"debit_currency"`  //  扣款币种
	DebitAmount   float64 `json:"debit_amount"`    //  扣款金额
	Amount        float64 `json:"amount"`          //  收款金额
	Rate          string  `json:"rate"`            //  汇率
	FeeCurrency   string  `json:"fee_currency"`    //  所收取的手续费币种
	FeeAmount     float64 `json:"fee_amount"`      //  所收取的手续费金额
	Status        string  `json:"status"`          //  订单状态
	RespCode      string  `json:"respCode"`        //  交易结果码
	RespDesc      string  `json:"respDesc"`        //  交易说明
	TradeComments string  `json:"trade_comments"`  // 汇款附言
	TradeCodeType string  `json:"trade_code_type"` // 交易编码
}

type IFCGateVAInfoCallBack struct {
	MerOrderNo  string `json:"mer_order_no"`
	MerChantNo  string `json:"merchant_no"`
	BizFlow     string `json:"biz_flow"`
	AccountName string `json:"account_name"`
	AccountNo   string `json:"account_no"`
	CodeValue   string `json:"code_value"`
	CodeName    string `json:"code_name"`
	BankName    string `json:"bank_name"`
	BankAddress string `json:"bank_address"`
	Area        string `json:"area"`
	BankCode    string `json:"bank_code"`
	BranchCode  string `json:"branch_code"`
	Currency    string `json:"currency"`
	Status      string `json:"status"`
	Remark      string `json:"remark"`
}

// IfcgateTradeReceipt  贸易到账记录表
type IfcgateTradeReceipt struct {
	ID                  int64   `json:"id"`                    //  主键
	FlowNo              string  `json:"flow_no"`               //  到账流水号
	MerchantNo          string  `json:"merchant_no"`           // 商户号
	Account             string  `json:"account"`               // 代理商账户
	ReceiveAmount       float64 `json:"receive_amount"`        //  到账金额
	ReceiveCurrency     string  `json:"receive_currency"`      //  到账币种
	VaAccount           string  `json:"va_account"`            //  入账va账户号
	SenderName          string  `json:"sender_name"`           //  付款方名称
	SenderAccount       string  `json:"sender_account"`        //  付款方账号
	ReceiveTime         string  `json:"receive_time"`          //  入账时间
	FeeAmount           float64 `json:"fee_amount"`            //  手续费金额
	FeeCurrency         string  `json:"fee_currency"`          //  手续费币种
	ActualReceiveAmount float64 `json:"actual_receive_amount"` //  实际入账金额
	AvailableFlag       string  `json:"available_flag"`        //  金额是否可用 0:不可用 1:可用
	ReceiveType         string  `json:"receive_type"`          //  交易类型 s:平台电商 d:独立站电商 t:线下一般货贸 f:服务贸易
	TradeComments       string  `json:"trade_comments"`        //  汇款附言
	TradeStatus         string  `json:"trade_status"`          // 还原材料结果:02-通过 03-驳回
	TradeMessage        string  `json:"trade_message"`         //还原材料结果描述
}

// IfcgateTradeOrder  贸易订单(还原材料 )回调表
type IfcgateTradeOrderCallBack struct {
	ID         int64   `json:"id"`           //  主键
	MerchantNo string  `json:"merchant_no"`  // 商户号
	Account    string  `json:"account"`      // 代理商账户
	FlowNo     string  `json:"flowNo"`       // 到账流水号
	MerOrderNo string  `json:"mer_order_no"` //  商户唯一订单号
	ContractNo string  `json:"contract_no"`  //  贸易订单号
	Currency   string  `json:"currency"`     //  订单币种
	Amount     float64 `json:"amount"`       //  订单总金额
	TradeType  string  `json:"trade_type"`   //  贸易类型 默认：00-货物贸易 01-服务贸易
	Status     string  `json:"status"`       //  accept-处理中 succ-成功 fail-失败
	Message    string  `json:"message"`      //  交易结果描述
}

// IfcgateTradeOrderMappingFlow  贸易订单(还原材料 )关联表
type IfcgateTradeOrderMappingFlow struct {
	ID          int64   `json:"id"`           //  主键
	Account     string  `json:"account"`      // 代理商账户
	MerchantNo  string  `json:"merchant_no"`  // 商户号
	FlowNo      string  `json:"flow_no"`      //  到账流水号
	ContractNo  string  `json:"contract_no"`  //  贸易订单号
	Currency    string  `json:"currency"`     // 入账币种
	Amount      float64 `json:"amount"`       // 收款金额
	FeeCurty    string  `json:"fee_curty"`    // 手续费币种，3位标准货币代码
	FeeAmt      float64 `json:"fee_amt"`      // OTT PAY收取手续费
	ApproveTime string  `json:"approve_time"` // 入账时间戳(毫秒)
	Status      string  `json:"status"`       // '02-通过 03-驳回'
	Message     string  `json:"message"`      // 交易结果描述
}

type IFCGateMerChantVAInfo struct {
	MerOrderNo               string `json:"mer_order_no"`
	BizFlow                  string `json:"biz_flow"`
	MerchantNo               string `json:"merchant_no"`
	AuthorizeCode            string `json:"authorize_code"`
	Email                    string `json:"email"`
	PhoneAreaCode            string `json:"phone_area_code"`
	PhoneNum                 string `json:"phone_num"`
	ReferralChannel          string `json:"referral_channel"`
	CountryCode              string `json:"country_code"`
	MerNameEn                string `json:"mer_name_en"`
	MerNameCn                string `json:"mer_name_cn"`
	EstablishDate            string `json:"establish_date"`
	BrExpiryDate             string `json:"br_expiry_date"`
	RegistrationAddress      string `json:"registration_address"`
	EnterprisePath           string `json:"enterprise_path"`
	ParentRemark             string `json:"parent_remark"`
	OwnerShipPath            string `json:"owner_ship_path"`
	ParentCertificate        string `json:"parent_certificate"`
	ParentCompany            string `json:"parent_company"`
	BranchRemark             string `json:"branch_remark"`
	BranchCompany            string `json:"branch_company"`
	Certificate              string `json:"certificate"`
	CertificateNumber        string `json:"certificate_number"`
	CompanyCertificate       string `json:"company_certificate"`
	CompanyCertificateNumber string `json:"company_certificate_number"`
	ParticipantsType         string `json:"participants_type"`
	Nnc1Path                 string `json:"nnc1_path"`
	Nar1Path1                string `json:"nar1_path1"`
	Mermorandum              string `json:"mermorandum"`
	CustomerIdentity         string `json:"customer_identity"`
	//Customer                 []PersonalInfoList `json:"customer"`
	//Shareholder              []PersonalInfoList `json:"shareholder"`
	//Director                 []PersonalInfoList `json:"director"`
	//LegalPerson              []PersonalInfoList `json:"legal_person"`
	Authorization          string `json:"authorization"`
	SourceFunds            string `json:"source_funds"`
	PaymentPurpose         string `json:"payment_purpose"`
	RiskCountryTransaction string `json:"risk_country_transaction"`
	RiskCountries          string `json:"risk_countries"`
	AddMaterial            string `json:"add_material"`
	//ReMaterial             ReMaterial        `json:"re_material"`
	RealCompanyAddress string `json:"real_company_address"`
	AddressMaterial    string `json:"address_material"`
	AddressType        string `json:"address_type"`
	CompanyWebsite     string `json:"company_website"`
	ClientCountry      string `json:"client_country"`
	BusinessCountry    string `json:"business_country"`
	SuppliersCountry   string `json:"suppliers_country"`
	InCountry          string `json:"in_country"`
	OutCountry         string `json:"out_country"`
	LastYearTurnover   string `json:"last_year_turnover"`
	TransactionAmount  string `json:"transaction_amount"`
	//Transaction        []TransactionList `json:"transaction"`
	WebSiteOrApp   string `json:"website_or_app"`
	BusinessNature string `json:"business_nature"`
	NoticeMarker   string `json:"notice_marker"`
	CallBackUrl    string `json:"call_back_url"`
	OtherPath      string `json:"other_path"`
	Postscript     string `json:"post_script"`
	VaFlag         string `json:"va_flag"`
	//VaInfo         	 []VaInfoList   `json:"va_info"`
	Status      string `json:"status"`
	AccessToken string `json:"access_token"`
	Account     string `json:"account"`
	Message     string `json:"message"`
}

// IfcgateAgent  结汇代理商表
type IfcgateAgent struct {
	ID         int64  `json:"id"`          //  主键
	Account    string `json:"account"`     //  账户
	Password   string `json:"password"`    //  密码
	Salt       string `json:"salt"`        //  用于密码加密
	Email      string `json:"email"`       //  邮箱
	MerchantNo string `json:"merchant_no"` //  商户号
	MerNameEn  string `json:"mer_name_en"` //  商户英文名称
}

// IfcgateDomesticPayee  国内收款人表
type IfcgateDomesticPayee struct {
	ID                         int64  `json:"id"`                           //  主键
	BizFlow                    string `json:"biz_flow"`                     // 收款人唯一编号
	MerchantNo                 string `json:"merchant_no"`                  //  商户号
	SubjectType                string `json:"subject_type"`                 //  账户类型：00-个人,01-企业
	PayeeName                  string `json:"payee_name"`                   //  收款方姓名
	CertNo                     string `json:"cert_no"`                      //  证件号
	Mobile                     string `json:"mobile"`                       //  电话
	Country                    string `json:"country"`                      //  国家/地区
	Currency                   string `json:"currency"`                     //  币种
	BankCode                   string `json:"bankCode"`                     // 银行联行号
	BankAcctNo                 string `json:"bank_acct_no"`                 //  银行账号
	BranchName                 string `json:"branch_name"`                  //  支行名称
	BusinessType               string `json:"business_type"`                //  业务类型 00-货贸（包含电商） 01-服贸 多条以,隔开
	PayeeType                  string `json:"payee_type"`                   //  收款人分类
	SupplementaryMaterialsPath string `json:"supplementary_materials_path"` //  补充材料
	BusinessLicensePath        string `json:"business_license_path"`        //  营业执照
	FrontCardPath              string `json:"front_card_path"`              //  身份证正面
	BackCardPath               string `json:"back_card_path"`               //  身份证反面
	LegalFrontCardPath         string `json:"legal_front_card_path"`        //  法人身份证正面
	LegalBackCardPath          string `json:"legal_back_card_path"`         //  法人身份证反面
	LegalCertNo                string `json:"legal_cert_no"`                //  法人身份证号
	Status                     string `json:"status"`                       //  00-审核中 01-成功 02-失败 03-待补充材料
	SenderName                 string `json:"senderName"`                   // 付款方名称
	SenderIncorporationNo      string `json:"senderIncorporationNo"`        // 付款方公司注册号
	RegistrationRegion         string `json:"registrationRegion"`           // 付款方注册地
	SenderBankName             string `json:"senderBankName"`               // 付款方银行名称
}

// IfcgateInternationPayee  国际收款人表
type IfcgateInternationPayee struct {
	ID                   int64  `json:"id"`                     //  主键
	MerchantNo           string `json:"merchant_no"`            //  商户号
	SubjectType          string `json:"subject_type"`           //  账户类型：00-个人,01-企业
	CountryCode          string `json:"country_code"`           //  国家编码
	PayeeFirstName       string `json:"payee_first_name"`       //  姓
	PayeeLastName        string `json:"payee_last_name"`        //  名
	PayeeCity            string `json:"payee_city"`             //  收款人城市
	PayeeProvince        string `json:"payee_province"`         //  收款人省份
	PayeeIdNo            string `json:"payee_id_no"`            //  收款方证件号
	PayeeEmail           string `json:"payee_email"`            //  收款方邮箱
	PayeePhone           string `json:"payee_phone"`            //  收款方手机号
	PayeeAddress         string `json:"payee_address"`          //  收款方地址
	PayeeZipCode         string `json:"payee_zip_code"`         //  收款人邮政编码
	PayeeAcctType        string `json:"payee_acct_type"`        //  帐户类型
	PayeeBankName        string `json:"payee_bank_name"`        //  收款方银行名称
	PayeeBankAccountNo   string `json:"payee_bank_account_no"`  //  收款方帐号
	PayeeBankAddress     string `json:"payee_bank_address"`     //  收款方银行地址
	PayeeRegisterNo      string `json:"payee_register_no"`      //  收款方注册号
	PayeeCompanyName     string `json:"payee_company_name"`     //  收款方公司名称
	PayeeResidentCountry string `json:"payee_resident_country"` //  银行账户所在地
	PayeeBankSwift       string `json:"payee_bank_swift"`       //  swift code
	ArriveCurrency       string `json:"arrive_currency"`        //  账户币种
	PayType              string `json:"pay_type"`               //  付款方式
	BankAcctType         string `json:"bank_acct_type"`         //  银行账户类型:01-to b,02-to c
	PayeeBankBranchCode  string `json:"payee_bank_branch_code"` //  收款人银行分行代码
	PayerProvince        string `json:"payer_province"`         //  付款方所在省份/州
	PayerPostalCode      string `json:"payer_postal_code"`      //  付款方邮编
	Status               string `json:"status"`                 //
}

type DomesticPayeeEmail struct {
	BranchName string `json:"branchName"` // 银行名称
	PayeeName  string `json:"payeeName"`  // 收款人姓名
	BankAcctNo string `json:"bankAcctNo"` // 银行帐号
	Money      string `json:"money"`      // 金额
	Currency   string `json:"currency"`   // 币种
}

type InternationPayeeEmail struct {
	PayeeName  string `json:"payeeName"`  // 收款人姓名
	BankAcctNo string `json:"bankAcctNo"` // 银行帐号
	Money      string `json:"money"`      // 金额
	Currency   string `json:"currency"`   //币种
}

type CollectMoneyEmail struct {
	Money    string `json:"money"`
	Currency string `json:"currency"`
}

// IfcgateCompanyUser  结汇企业用户表
type IfcgateCompanyUser struct {
	ID           int64  `json:"id"`            //  主键
	Account      string `json:"account"`       //  账户
	AgentAccount string `json:"agent_account"` // 代理商账户
	Password     string `json:"password"`      //  密码
	Salt         string `json:"salt"`          //  用于密码加密
	Email        string `json:"email"`         //  邮箱
	MerchantNo   string `json:"merchant_no"`   //  商户号
	MerNameEn    string `json:"mer_name_en"`   //  商户英文名称
}

// IfcgateCommissionRecord  佣金流水表
type IfcgateCommissionRecord struct {
	ID                 int64   `json:"id"`                   //  主键
	Account            string  `json:"account"`              //  代理商帐户
	MerchantNo         string  `json:"merchant_no"`          //  商户号
	TradeNo            string  `json:"trade_no"`             //  交易流水号
	TradeTime          string  `json:"trade_time"`           // 交易时间
	CommissionType     string  `json:"commission_type"`      //  分佣类型:collection-收款,transfer-汇款,exchange-换汇
	ExchangeRateSource string  `json:"exchange_rate_source"` //  汇率源：00-星展银行实时牌价，01-中银香港实时牌价，02-中银大陆实时牌价
	TradeAmount        float64 `json:"trade_amount"`         //  交易金额
	TradeCurrency      string  `json:"trade_currency"`       //  交易币种
	CommissionAmount   float64 `json:"commission_amount"`    //  分佣金额
	CommissionCurrency string  `json:"commission_currency"`  //  分佣币种
	FixedAmount        float64 `json:"fixed_amount"`         //  固定金额
	FixedCurrency      string  `json:"fixed_currency"`       //  固定币种
	BudgetSign         int64   `json:"budget_sign"`          //  收支状态,0-支出,1-收入
	AccountType        string  `json:"account_type"`         // 帐户类型:agent-代理商、boss-我们自己
}

// IfcgateFee  企业/代理商手续费
type IfcgateFee struct {
	ID                           int64   `json:"id"`                              //  主键
	AgentAccount                 string  `json:"agent_account"`                   //  代理商账号
	Account                      string  `json:"account"`                         //  企业账号
	MerchantNo                   string  `json:"merchant_no"`                     //  商户号
	GtCollectionFixedFee         float64 `json:"gt_collection_fixed_fee"`         //  货贸(含电商)收款固定费用,单位usd
	GtCollectionFee              float64 `json:"gt_collection_fee"`               //  货贸(含电商)收款手续费比例
	GtPaymentFixedFee            float64 `json:"gt_payment_fixed_fee"`            //  货贸(含电商)结汇固定费用，单位cny
	GtPaymentFee                 float64 `json:"gt_payment_fee"`                  //  货贸(含电商)结汇手续费比例
	GtSpeedPaymentFixedFee       float64 `json:"gt_speed_payment_fixed_fee"`      //  货贸(含电商)极速结汇固定费用，单位cny
	GtSpeedPaymentFee            float64 `json:"gt_speed_payment_fee"`            //  货贸(含电商)极速结汇手续费比例
	StCollectionFixedFee         float64 `json:"st_collection_fixed_fee"`         //  服贸收款固定费用,单位usd
	StCollectionFee              float64 `json:"st_collection_fee"`               //  服贸收款手续费比例
	StPaymentFixedFee            float64 `json:"st_payment_fixed_fee"`            //  服贸结汇固定费用，单位cny
	StPaymentFee                 float64 `json:"st_payment_fee"`                  //  服贸结汇手续费比例
	InternationalPaymentFixedFee float64 `json:"international_payment_fixed_fee"` //  国际付款swift固定费用，单位usd
	InternationalPaymentFee      float64 `json:"international_payment_fee"`       //  国际付款swift手续费比例
	InternationalPoboFixedFee    float64 `json:"international_pobo_fixed_fee"`    //  国际付款swift,pobo固定费用，单位usd
	InternationalPoboFee         float64 `json:"international_pobo_fee"`          //  国际付款swift,pobo手续费比例
	HkLocalPaymentFixedFee       float64 `json:"hk_local_payment_fixed_fee"`      //  香港local付款固定费用，单位usd
	HkLocalPaymentFee            float64 `json:"hk_local_payment_fee"`            //  香港local付款手续费比例
	ExchangeRateSource           string  `json:"exchange_rate_source"`            //  汇率源：00-星展银行实时牌价，01-中银香港实时牌价，02-中银大陆实时牌价
	ExchangeRateDiff             float64 `json:"exchange_rate_diff"`              //  汇率差
	RechargeExpensesFixedFee     float64 `json:"recharge_expenses_fixed_fee"`     //  充值固定费用，单位usd
	RechargeExpensesFee          float64 `json:"recharge_expenses_fee"`           //  充值手续费比例
	AccountOpeningFixedFee       float64 `json:"account_opening_fixed_fee"`       //  开户费，单位usd
	MonthlyMaintenanceFixedFee   float64 `json:"monthly_maintenance_fixed_fee"`   //  月度维护费，单位usd
	FeeType                      string  `json:"fee_type"`                        //  手续费类型：00-企业，01-代理商
	Status                       string  `json:"status"`                          //  手续费状态:1-启用
}
